#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
模板操作模块
处理文件名模板的展开和相关功能
"""

import datetime


def get_template_variables():
    """获取可用的模板变量说明"""
    return {
        '<YYYY>': '四位年份 (如: 2024)',
        '<MM>': '两位月份 (如: 12)', 
        '<DD>': '两位日期 (如: 25)',
        '<hh>': '两位小时 (如: 14)',
        '<mm>': '两位分钟 (如: 30)',
        '<ss>': '两位秒数 (如: 22)',
    }

def expand_filename_template(template):
    """展开文件名模板中的时间变量"""
    if not template:
        return ""
    
    now = datetime.datetime.now()
    
    # 定义模板变量映射
    template_vars = {
        '<YYYY>': now.strftime('%Y'),
        '<MM>': now.strftime('%m'),
        '<DD>': now.strftime('%d'),
        '<hh>': now.strftime('%H'),
        '<mm>': now.strftime('%M'),
        '<ss>': now.strftime('%S'),
    }
    
    # 替换模板变量
    expanded = template
    for var, value in template_vars.items():
        expanded = expanded.replace(var, value)
    
    return expanded

def generate_filename_template(ext='.txt'):
    """生成默认文件名模板"""
    return f"<MM><DD>_<hh><mm><ss>{ext}"

def get_template_help_text():
    """获取模板帮助文本"""
    variables = get_template_variables()
    
    help_text = "文件名模板变量说明：\n\n"
    
    for var, desc in variables.items():
        help_text += f"{var}   - {desc}\n"
    
    help_text += "\n示例模板：\n"
    help_text += "<MM><DD>_<hh><mm><ss>.txt\n"
    help_text += "note_<YYYY><MM><DD>.md\n"
    help_text += "<YYYY>年<MM>月<DD>日笔记.txt\n\n"
    help_text += "保存时会自动替换为实际时间。"
    
    return help_text

def validate_template(template):
    """验证模板格式是否有效"""
    if not template:
        return False, "模板不能为空"
    
    # 检查是否包含有效的模板变量
    variables = get_template_variables().keys()
    has_variable = any(var in template for var in variables)
    
    if not has_variable:
        return False, "模板中应至少包含一个时间变量"
    
    return True, "模板格式有效"